@CI
2年前 提问
1个回答

程序漏洞攻击主要手段有哪些

Ann
2年前

程序漏洞攻击主要手段有以下这些:

  • 缓冲区溢出攻击:缓冲区溢出攻击是利用系统、服务、应用程序中存在的漏洞,通过恶意填写内存区域,使内存区域溢出,导致应用程序、服务甚至系统崩溃,无法提供应有的服务来实现攻击目的。不检测边界是造成缓冲区溢出的主要原因。以UNIX系统为例,其主要设计语言是C语言,而C语言缺乏边界检测,若不检查数组的越界访问,就会留下基于堆栈攻击的隐患。UNIX进程在内存中分为代码段、数据段和堆栈段。堆栈段用于为动态变量分配空间和临时保存函数调用的参数和返回地址。动态分配是UNIX程序采用的主要方法,但是,若动态变量从栈中分配空间时没有作边界检查,则可能发生缓冲区溢出,造成段越界。

  • BIND漏洞攻击:运行在DNS服务器上的BIND(Berkeley Internet name domain)服务器软件是最易遭受攻击的软件之一。BIND存在的脆弱性可以对系统造成根级的安全威胁,如BIND 8.2版本存在漏洞,攻击者伪装成DNS服务器,发送一个大的NXT记录(next, RFC2065有关DNS的安全扩展中介绍了NXT的相关规定,域中不存在的名字被标定为NXT类型),并在记录中包含攻击代码,使运行着存在漏洞的DNS服务器引起缓冲区溢出,从而获得root权限。

  • Finger漏洞攻击:Solaris自带的Finger服务器存在如下一些漏洞:当攻击者在向Finger服务器提交以数字做用户名的询问请求时,如finger 1234@abc.com, Finger服务器会把日志文件wtmp(wtmp一个用户每次登录和退出时间的记录)中所有的用户名返回给攻击者。当攻击者对服务器进行finger查询时,如果询问一个不存在的用户,服务器会返回一个带“.”的回答,这可能造成攻击者用暴力法判断系统上存在的用户。

  • Sendmail漏洞攻击:在旧版本的sendmail中,为解决反向编码的问题,数据库中包含一个decode入口,这个UNIX程序可以将一个以纯文本编码的二进制文件,转化为原有的二进制的形式和名字。反向编码完全尊重被编码的文件。例如,当一个名为bar.uu的文件声称其原始文件是/home/foo/.rhosts时,则反编码程序将试图转化bar.uu文件为foo下的.rhosts文件。一般情况下,sendmail将undecode作为半特权用户后台程序运行,所以Email发出的编码文件不会覆盖任何系统文件。但是,如果目标程序是全局可写的,那么编码程序允许远程用户修改这些文件,使攻击者可以放置木马,留下后门,达到攻击目的。